/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package io;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;

/**
 *
 * @author NiCo
 */
@Entity
public class Adulto extends Persona implements Serializable {

    private TipoEstadoCivil estadoCivil;
    private TipoSituacionLaboral situacionLaboral;
    private String lugarDeTrabajo;
    private String obraSocial;
    private String beneficiario;
    private int edad;
    private List<Nino_Adolescente> madreDe;
    private List<Nino_Adolescente> padreDe;
    private List<IntervencionComun> madreIntervencion;
    private List<IntervencionComun> padreIntervencion;
    private List<Hijo> padreDeHijo;
    private List<Hijo> madreDeHijo;

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }

    public String getBeneficiario() {
        return beneficiario;
    }

    public void setBeneficiario(String beneficiario) {
        this.beneficiario = beneficiario;
    }

    public TipoEstadoCivil getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil(TipoEstadoCivil estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    public String getLugarDeTrabajo() {
        return lugarDeTrabajo;
    }

    public void setLugarDeTrabajo(String lugarDeTrabajo) {
        this.lugarDeTrabajo = lugarDeTrabajo;
    }

    public String getObraSocial() {
        return obraSocial;
    }

    public void setObraSocial(String obraSocial) {
        this.obraSocial = obraSocial;
    }

    public TipoSituacionLaboral getSituacionLaboral() {
        return situacionLaboral;
    }

    public void setSituacionLaboral(TipoSituacionLaboral situacionLaboral) {
        this.situacionLaboral = situacionLaboral;
    }

    @OneToMany(mappedBy = "madre")
    public List<Nino_Adolescente> getMadreDe() {
        return madreDe;
    }

    public void setMadreDe(List<Nino_Adolescente> madreDe) {
        this.madreDe = madreDe;
    }

    @OneToMany(mappedBy = "madre")
    public List<IntervencionComun> getMadreIntervencion() {
        return madreIntervencion;
    }

    public void setMadreIntervencion(List<IntervencionComun> madreIntervencion) {
        this.madreIntervencion = madreIntervencion;
    }

    @OneToMany(mappedBy = "padre")
    public List<Nino_Adolescente> getPadreDe() {
        return padreDe;
    }

    public void setPadreDe(List<Nino_Adolescente> padreDe) {
        this.padreDe = padreDe;
    }

    @OneToMany(mappedBy = "padre")
    public List<IntervencionComun> getPadreIntervencion() {
        return padreIntervencion;
    }

    public void setPadreIntervencion(List<IntervencionComun> padreIntervencion) {
        this.padreIntervencion = padreIntervencion;
    }

    @OneToMany(mappedBy = "madre")
    public List<Hijo> getMadreDeHijo() {
        return madreDeHijo;
    }

    public void setMadreDeHijo(List<Hijo> madreDeHijo) {
        this.madreDeHijo = madreDeHijo;
    }

    @OneToMany(mappedBy = "padre")
    public List<Hijo> getPadreDeHijo() {
        return padreDeHijo;
    }

    public void setPadreDeHijo(List<Hijo> padreDeHijo) {
        this.padreDeHijo = padreDeHijo;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (super.getId() != null ? super.getId().hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Adulto)) {
            return false;
        }
        Adulto other = (Adulto) object;
        if ((super.getId() == null && other.getId() != null) || (super.getId() != null && !super.getId().equals(other.getId()))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "io.Adulto[ id=" + super.getId() + " ]";
    }
}
